home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 27 / CU Amiga Magazine's Super CD-ROM 27 (1998)(EMAP Images)(GB)[!][issue 1998-10].iso / CUCD / PowerPC / vbcc / machines / amigawos / libsrc / stdio / fseek.c < prev    next >
C/C++ Source or Header  |  1998-08-02  |  472b  |  27 lines

  1. #include <stdio.h>
  2. #include <errno.h>
  3.  
  4. int fseek(FILE *f,long offset,int origin)
  5. {
  6.   if (!f) {
  7.     errno = EBADF;
  8.     return(-1);
  9.   }
  10.   if (origin==SEEK_CUR) {
  11.     if (f->flags&_READ)
  12.       offset -= f->count;
  13. #if 0
  14.     if (f->flags&_WRITE)
  15.       offset += f->count;
  16. #endif
  17.   }
  18.   if (f->flags&_WRITE)
  19.     if (_flushbuf(f))
  20.       return(-1);
  21.   f->flags &= ~(_READ|_WRITE|_EOF);
  22.   f->count = 0;
  23.   if (_seek(f->filehandle,offset,origin) == -1)
  24.     return(-1);
  25.   return(0);
  26. }
  27.